﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Linq;
using AdmUsuarios.MessageContracts;

namespace AdmUsuarios.ServiceImplementation
{
    public partial class AdmUsuariosService : AdmUsuariosServiceBase
    {

        public override AdmUsuarios.MessageContracts.ValidarUsuarioResponse ValidarUsuario(AdmUsuarios.MessageContracts.ValidarUsuarioRequest request)
        {
            using (EntidadesUsuariosDataContext eudc = new EntidadesUsuariosDataContext())
            {
                AdmUsuarios.MessageContracts.ValidarUsuarioResponse response = new AdmUsuarios.MessageContracts.ValidarUsuarioResponse();
                try
                {
                    var usuario = (from u in eudc.USUARIOs
                                   where u.USUARIO_ID.Equals(request.NombreUsuario)
                                   select u).ToArray();
                    if (usuario.Length > 0)
                    {
                        response.UsuarioValido = usuario[0].USUARIO_CLAVE.Equals(request.Clave);
                        return response;
                    }
                }
                catch (Exception)
                {
                }
                response.UsuarioValido = false;
                return response;
            }
        }

        public override AdmUsuarios.MessageContracts.CrearUsuarioResponse CrearUsuario(AdmUsuarios.MessageContracts.CrearUsuarioRequest request)
        {
            CrearUsuarioResponse response = new CrearUsuarioResponse();
            using (EntidadesUsuariosDataContext eudc = new EntidadesUsuariosDataContext())
            {
                try
                {
                    var usuario = (from u in eudc.USUARIOs
                                   where u.USUARIO_ID.Equals(request.NombreUsuario)
                                   select u).ToArray();
                    if (usuario.Length > 0)
                    {
                        response.Mensaje = "DuplicateUserName";
                        return response;
                    }
                    USUARIO nuevoUsuario = new USUARIO();
                    nuevoUsuario.USUARIO_CLAVE = request.Clave;
                    nuevoUsuario.USUARIO_ID = request.NombreUsuario;
                    nuevoUsuario.USUARIO_MAIL = request.Email;
                    nuevoUsuario.USUARIO_CELULAR = request.Telefono;
                    nuevoUsuario.USUARIO_FECHA_NACIMIENTO = request.FechaNacimiento;

                    eudc.USUARIOs.InsertOnSubmit(nuevoUsuario);

                    eudc.SubmitChanges();
                    response.Mensaje = "Success";
                    return response;
                }
                catch (Exception)
                {
                    //XmlDocument xmlDoc = new XmlDocument();
                    //xmlDoc.InnerXml = "<pepe><error>" + ex.Message + "</error></pepe>";
                    //xmlDoc.Save(System.AppDomain.CurrentDomain.BaseDirectory + "App_Data/error.xml");
                    response.Mensaje = "ProviderError";
                    return response;
                }
            }
        }

    }
}
